﻿2026-06-04T12:53:14.7035167Z ##[group]Run ./traceable-reqs lint || true
2026-06-04T12:53:14.7035798Z [36;1m./traceable-reqs lint || true[0m
2026-06-04T12:53:14.7058177Z shell: /usr/bin/bash -e {0}
2026-06-04T12:53:14.7058624Z ##[endgroup]
2026-06-04T12:53:14.7277826Z Requirement quality findings (17); 129 requirements queued for agent review:
2026-06-04T12:53:14.7280334Z   [must] requirement_quality REQ-API-1 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-04T12:53:14.7283098Z   [must] requirement_quality REQ-HAZARD-CONFLICT-BOTH-PRESERVED criterion=length — title is 29 words; want 3..=25
2026-06-04T12:53:14.7285289Z   [must] requirement_quality REQ-HAZARD-DAEMON-SCHED-NONBLOCKING criterion=length — title is 32 words; want 3..=25
2026-06-04T12:53:14.7287806Z   [must] requirement_quality REQ-HAZARD-ENVELOPE-PARSER-SAFE criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-04T12:53:14.7290187Z   [must] requirement_quality REQ-HAZARD-GEN-START-NOW criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-04T12:53:14.7292025Z   [must] requirement_quality REQ-HAZARD-PAIR-RATE-LIMIT criterion=length — title is 37 words; want 3..=25
2026-06-04T12:53:14.7293810Z   [must] requirement_quality REQ-HAZARD-PAIR-SEED-ROTATION criterion=length — title is 33 words; want 3..=25
2026-06-04T12:53:14.7296320Z   [must] requirement_quality REQ-HAZARD-PAIR-TRANSCRIPT-BIND criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-04T12:53:14.7298805Z   [must] requirement_quality REQ-HAZARD-PSYCHE-OUTBOUND-PROXY criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-04T12:53:14.7300823Z   [must] requirement_quality REQ-HAZARD-PSYCHE-OUTBOUND-PROXY criterion=length — title is 27 words; want 3..=25
2026-06-04T12:53:14.7302470Z   [must] requirement_quality REQ-HAZARD-WAN-ORIGIN-AUTH criterion=length — title is 37 words; want 3..=25
2026-06-04T12:53:14.7303802Z   [must] requirement_quality REQ-INST-15 criterion=length — title is 32 words; want 3..=25
2026-06-04T12:53:14.7305232Z   [must] requirement_quality REQ-INSTALL-2 criterion=length — title is 2 word(s); want 3..=25
2026-06-04T12:53:14.7307218Z   [must] requirement_quality REQ-MANIFEST-1 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-04T12:53:14.7310134Z   [must] requirement_quality REQ-MIGRATE-1 criterion=contains-and — title contains ' and ' — may smuggle multiple capabilities
2026-06-04T12:53:14.7311558Z   [must] requirement_quality REQ-SEAM-SPAWN criterion=length — title is 2 word(s); want 3..=25
2026-06-04T12:53:14.7312875Z   [must] requirement_quality REQ-STORE-1 criterion=length — title is 34 words; want 3..=25
2026-06-04T12:53:14.7312901Z 
2026-06-04T12:53:14.7327530Z # Requirement quality review
2026-06-04T12:53:14.7327664Z 
2026-06-04T12:53:14.7328955Z You are reviewing 129 requirement(s) from `traceable-reqs.toml` against a quality
2026-06-04T12:53:14.7330272Z rubric. Deterministic checks (length, contains-and, tbd-todo, duplicate-titles,
2026-06-04T12:53:14.7331445Z trailing-etc) have already run and surfaced as `requirement_quality` findings on
2026-06-04T12:53:14.7332195Z this command's output. Your task is the rubric items below.
2026-06-04T12:53:14.7332216Z 
2026-06-04T12:53:14.7332629Z ## Rubric
2026-06-04T12:53:14.7332649Z 
2026-06-04T12:53:14.7334117Z - **singular** — describes one capability; no smuggled "and"/"or" across distinct actions.
2026-06-04T12:53:14.7335253Z - **verifiable** — states an observable behavior a test or reviewer could confirm.
2026-06-04T12:53:14.7336275Z - **atomic** — cannot be split into two requirements without losing meaning.
2026-06-04T12:53:14.7336971Z - **active-voice** — clear subject and active verb.
2026-06-04T12:53:14.7336993Z 
2026-06-04T12:53:14.7338114Z If a criterion is borderline or doesn't apply, abstain — only emit findings for
2026-06-04T12:53:14.7338556Z clear concerns.
2026-06-04T12:53:14.7338576Z 
2026-06-04T12:53:14.7339016Z ## Requirements
2026-06-04T12:53:14.7339933Z 
2026-06-04T12:53:14.7340387Z ### REQ-ARCH-1
2026-06-04T12:53:14.7340982Z - Title: Many small acyclically-layered crates
2026-06-04T12:53:14.7341447Z - Required stages: impl
2026-06-04T12:53:14.7341471Z 
2026-06-04T12:53:14.7341894Z ### REQ-ARCH-2
2026-06-04T12:53:14.7342701Z - Title: Public SDK surface is spt-proto, spt-runtime, spt-msg
2026-06-04T12:53:14.7343397Z - Required stages: impl
2026-06-04T12:53:14.7343420Z 
2026-06-04T12:53:14.7343847Z ### REQ-ARCH-3
2026-06-04T12:53:14.7344880Z - Title: Wire-protocol version independent of crate semver, N-1 compat window
2026-06-04T12:53:14.7345369Z - Required stages: impl, unit
2026-06-04T12:53:14.7345389Z 
2026-06-04T12:53:14.7345821Z ### REQ-ARCH-4
2026-06-04T12:53:14.7346676Z - Title: Copy-verbatim the commodity layer from the sister project
2026-06-04T12:53:14.7347157Z - Required stages: impl, unit
2026-06-04T12:53:14.7347176Z 
2026-06-04T12:53:14.7347620Z ### REQ-DAEMON-1
2026-06-04T12:53:14.7348422Z - Title: One per-machine spt-daemon owning all per-machine state
2026-06-04T12:53:14.7348942Z - Required stages: impl, unit, int
2026-06-04T12:53:14.7348962Z 
2026-06-04T12:53:14.7349628Z ### REQ-DAEMON-2
2026-06-04T12:53:14.7350316Z - Title: Broker/brain split for seamless self-update
2026-06-04T12:53:14.7350847Z - Required stages: impl, unit, int
2026-06-04T12:53:14.7350868Z 
2026-06-04T12:53:14.7351322Z ### REQ-DAEMON-3
2026-06-04T12:53:14.7352096Z - Title: Any api invocation auto-starts the daemon if absent
2026-06-04T12:53:14.7352611Z - Required stages: impl, unit, int
2026-06-04T12:53:14.7352632Z 
2026-06-04T12:53:14.7353090Z ### REQ-DAEMON-4
2026-06-04T12:53:14.7353667Z - Title: Honor every KNOWN-HAZARDS invariant
2026-06-04T12:53:14.7354172Z - Required stages: impl, unit, int
2026-06-04T12:53:14.7354192Z 
2026-06-04T12:53:14.7354632Z ### REQ-STORE-1
2026-06-04T12:53:14.7360056Z - Title: spt-store::BranchStore (git branch as versioned KV; commit=checkpoint/tip=resume, atomic multi-key, merge-native sync) is the substrate for coarse/durable/audited state (context, registry snapshot+distribution, daemon checkpoint); hot paths (B5 fsync journal) + indexed queries (SQLite spool) excluded (ADR-0011)
2026-06-04T12:53:14.7360576Z - Required stages: impl, unit
2026-06-04T12:53:14.7360600Z 
2026-06-04T12:53:14.7361047Z ### REQ-MANIFEST-1
2026-06-04T12:53:14.7361974Z - Title: Per-adapter manifest with adapter_name and min_spt_core_version
2026-06-04T12:53:14.7362492Z - Required stages: doc, impl, unit
2026-06-04T12:53:14.7362512Z 
2026-06-04T12:53:14.7362961Z ### REQ-SEAM-SPAWN
2026-06-04T12:53:14.7363435Z - Title: spawn-session seam
2026-06-04T12:53:14.7363922Z - Required stages: impl, unit
2026-06-04T12:53:14.7363941Z 
2026-06-04T12:53:14.7364392Z ### REQ-SEAM-POSTSPAWN
2026-06-04T12:53:14.7365023Z - Title: post-spawn / api bind seam with boot nonce
2026-06-04T12:53:14.7365508Z - Required stages: impl, unit
2026-06-04T12:53:14.7365528Z 
2026-06-04T12:53:14.7365988Z ### REQ-SEAM-PSYCHE
2026-06-04T12:53:14.7366647Z - Title: spawn-psyche seam (fresh + resume templates)
2026-06-04T12:53:14.7367162Z - Required stages: impl, unit, int
2026-06-04T12:53:14.7367188Z 
2026-06-04T12:53:14.7367640Z ### REQ-SEAM-HISTORY
2026-06-04T12:53:14.7368543Z - Title: History subsystem (fetcher / locate-normalize / native store)
2026-06-04T12:53:14.7369055Z - Required stages: impl, unit, int
2026-06-04T12:53:14.7369086Z 
2026-06-04T12:53:14.7369740Z ### REQ-SEAM-ACTIVITY
2026-06-04T12:53:14.7370790Z - Title: Activity/idle reported via api sentinels, not PTY quiescence
2026-06-04T12:53:14.7371283Z - Required stages: impl, unit
2026-06-04T12:53:14.7371303Z 
2026-06-04T12:53:14.7371740Z ### REQ-SEAM-INJECT
2026-06-04T12:53:14.7372542Z - Title: inject-input methods configurable per activity-state
2026-06-04T12:53:14.7373036Z - Required stages: impl, unit
2026-06-04T12:53:14.7373055Z 
2026-06-04T12:53:14.7373496Z ### REQ-SEAM-RESUME
2026-06-04T12:53:14.7374409Z - Title: resume-session seam (fresh-with-preload / continue-existing)
2026-06-04T12:53:14.7374893Z - Required stages: impl, unit
2026-06-04T12:53:14.7375100Z 
2026-06-04T12:53:14.7375576Z ### REQ-SEAM-CAPABILITY
2026-06-04T12:53:14.7376281Z - Title: Hostable endpoint-types capability declaration
2026-06-04T12:53:14.7376761Z - Required stages: impl, unit
2026-06-04T12:53:14.7376782Z 
2026-06-04T12:53:14.7377232Z ### REQ-SEAM-UPDATE
2026-06-04T12:53:14.7378027Z - Title: Adapter-update avenue (file-pull / delegated command)
2026-06-04T12:53:14.7378675Z - Required stages: impl, unit
2026-06-04T12:53:14.7378696Z 
2026-06-04T12:53:14.7379125Z ### REQ-API-1
2026-06-04T12:53:14.7380315Z - Title: api prefix and adapter_name on every machinery invocation
2026-06-04T12:53:14.7380823Z - Required stages: impl, unit, int
2026-06-04T12:53:14.7380843Z 
2026-06-04T12:53:14.7381256Z ### REQ-API-2
2026-06-04T12:53:14.7382311Z - Title: The api subcommand surface (bind/listen/poll/state/worker/boundary/...)
2026-06-04T12:53:14.7382806Z - Required stages: impl, unit, int
2026-06-04T12:53:14.7382836Z 
2026-06-04T12:53:14.7383276Z ### REQ-API-3
2026-06-04T12:53:14.7383938Z - Title: commune/signoff are file-drops, not commands
2026-06-04T12:53:14.7384435Z - Required stages: impl, unit, int
2026-06-04T12:53:14.7384456Z 
2026-06-04T12:53:14.7384893Z ### REQ-START-1
2026-06-04T12:53:14.7385861Z - Title: Adapters never resolve SPT_HOME; binary on PATH; api bridging only
2026-06-04T12:53:14.7386355Z - Required stages: impl, unit
2026-06-04T12:53:14.7386387Z 
2026-06-04T12:53:14.7386819Z ### REQ-START-2
2026-06-04T12:53:14.7387475Z - Title: Harness-hosted startup: api seed then listen
2026-06-04T12:53:14.7387982Z - Required stages: impl, unit, int
2026-06-04T12:53:14.7387999Z 
2026-06-04T12:53:14.7388426Z ### REQ-START-3
2026-06-04T12:53:14.7389302Z - Title: spt-hosted startup: spawn-session then api bind (no file)
2026-06-04T12:53:14.7390179Z - Required stages: impl, unit, int
2026-06-04T12:53:14.7390197Z 
2026-06-04T12:53:14.7390617Z ### REQ-START-4
2026-06-04T12:53:14.7391262Z - Title: Adapter-injected env aliases (SPT/OWL/LIVE)
2026-06-04T12:53:14.7391750Z - Required stages: impl, unit
2026-06-04T12:53:14.7391770Z 
2026-06-04T12:53:14.7392197Z ### REQ-EP-1
2026-06-04T12:53:14.7392813Z - Title: Day-one endpoint types; open type system
2026-06-04T12:53:14.7393286Z - Required stages: impl, unit
2026-06-04T12:53:14.7393307Z 
2026-06-04T12:53:14.7393732Z ### REQ-EP-2
2026-06-04T12:53:14.7394545Z - Title: Agent endpoints vs Shells distinction in the type model
2026-06-04T12:53:14.7395047Z - Required stages: impl, unit
2026-06-04T12:53:14.7395067Z 
2026-06-04T12:53:14.7395481Z ### REQ-EP-3
2026-06-04T12:53:14.7396405Z - Title: Messaging payloads carry typed operation commands + file blobs
2026-06-04T12:53:14.7396892Z - Required stages: impl, unit
2026-06-04T12:53:14.7396910Z 
2026-06-04T12:53:14.7397325Z ### REQ-EP-4
2026-06-04T12:53:14.7398026Z - Title: PresenceChannel broker endpoint (seam day-one)
2026-06-04T12:53:14.7398506Z - Required stages: impl, unit
2026-06-04T12:53:14.7398523Z 
2026-06-04T12:53:14.7398952Z ### REQ-EP-5
2026-06-04T12:53:14.7403281Z - Title: Concrete shell instantiation model: spawn-mints-instance (vs relink/online), registered-on-node permission + broadcast-is-discovery, per-shell require_approval gate, max_instances_per_owner + over_cap, instance aliasing, discovery scope
2026-06-04T12:53:14.7403736Z - Required stages: 
2026-06-04T12:53:14.7403759Z 
2026-06-04T12:53:14.7404193Z ### REQ-INST-1
2026-06-04T12:53:14.7404969Z - Title: endpoint ID vs instance split (adapter-agnostic ID)
2026-06-04T12:53:14.7405422Z - Required stages: 
2026-06-04T12:53:14.7405440Z 
2026-06-04T12:53:14.7405876Z ### REQ-INST-2
2026-06-04T12:53:14.7406413Z - Title: Per-node files, synced Psyche mind
2026-06-04T12:53:14.7406899Z - Required stages: impl, unit
2026-06-04T12:53:14.7406918Z 
2026-06-04T12:53:14.7407344Z ### REQ-INST-3
2026-06-04T12:53:14.7408051Z - Title: Dormant (warm) / suspended (cold) resting states
2026-06-04T12:53:14.7408561Z - Required stages: doc, impl, unit
2026-06-04T12:53:14.7408582Z 
2026-06-04T12:53:14.7409006Z ### REQ-INST-4
2026-06-04T12:53:14.7410429Z - Title: active to dormant/suspended fires a transition echo commune
2026-06-04T12:53:14.7410919Z - Required stages: impl, unit
2026-06-04T12:53:14.7410940Z 
2026-06-04T12:53:14.7411374Z ### REQ-INST-5
2026-06-04T12:53:14.7412254Z - Title: Two-tier context sync (live to all, project to same-project)
2026-06-04T12:53:14.7412739Z - Required stages: impl, unit
2026-06-04T12:53:14.7412901Z 
2026-06-04T12:53:14.7413343Z ### REQ-INST-6
2026-06-04T12:53:14.7414257Z - Title: Deferred messages not delivered to dormant/suspended instances
2026-06-04T12:53:14.7414710Z - Required stages: 
2026-06-04T12:53:14.7414729Z 
2026-06-04T12:53:14.7415158Z ### REQ-INST-7
2026-06-04T12:53:14.7415801Z - Title: Subnet registry + bare-id resolution policy
2026-06-04T12:53:14.7416295Z - Required stages: impl, unit
2026-06-04T12:53:14.7416317Z 
2026-06-04T12:53:14.7416741Z ### REQ-INST-8
2026-06-04T12:53:14.7417484Z - Title: Remote-control mode distinct from local operation
2026-06-04T12:53:14.7417960Z - Required stages: impl, unit
2026-06-04T12:53:14.7418002Z 
2026-06-04T12:53:14.7418425Z ### REQ-INST-9
2026-06-04T12:53:14.7419387Z - Title: Multi-subnet membership (same-user N subnets; cross-user seam)
2026-06-04T12:53:14.7420213Z - Required stages: impl, unit
2026-06-04T12:53:14.7420233Z 
2026-06-04T12:53:14.7420662Z ### REQ-INST-10
2026-06-04T12:53:14.7421732Z - Title: Qualified addressing [subnet:]id[@node] + ambiguity forces qualification
2026-06-04T12:53:14.7422235Z - Required stages: impl, unit
2026-06-04T12:53:14.7422254Z 
2026-06-04T12:53:14.7422687Z ### REQ-INST-11
2026-06-04T12:53:14.7423771Z - Title: spt rename <id> rippled to all instances (collision-checked, 6.5-reconciled)
2026-06-04T12:53:14.7424258Z - Required stages: impl, unit
2026-06-04T12:53:14.7424277Z 
2026-06-04T12:53:14.7424696Z ### REQ-INST-12
2026-06-04T12:53:14.7426253Z - Title: Endpoint visibility per-(endpoint,subnet): excluded semantics, OR-of-defaults + override, gates sync
2026-06-04T12:53:14.7426747Z - Required stages: impl, unit
2026-06-04T12:53:14.7426776Z 
2026-06-04T12:53:14.7427197Z ### REQ-INST-13
2026-06-04T12:53:14.7428111Z - Title: Subnet-exclusive sync + per-endpoint subnet-membership list
2026-06-04T12:53:14.7428594Z - Required stages: impl, unit
2026-06-04T12:53:14.7428614Z 
2026-06-04T12:53:14.7429048Z ### REQ-INST-14
2026-06-04T12:53:14.7431529Z - Title: Resource advertisement (subnet resource registry): free-text blurb, both-authored, registry projection, visibility/whitelist-gated
2026-06-04T12:53:14.7431994Z - Required stages: 
2026-06-04T12:53:14.7432014Z 
2026-06-04T12:53:14.7432450Z ### REQ-INST-15
2026-06-04T12:53:14.7436738Z - Title: Immutable home subnet (assigned at creation: auto-if-one/ask-if-many) + spt fork (cross-subnet clone to a new identity, copy-then-diverge, not re-home); adapter chosen at creation from registered hostable adapters, changed only via launch/resume-under-new (ADR-0010)
2026-06-04T12:53:14.7437199Z - Required stages: 
2026-06-04T12:53:14.7437218Z 
2026-06-04T12:53:14.7437648Z ### REQ-REACH-1
2026-06-04T12:53:14.7438352Z - Title: Off-node remote-drive detection + file transfer
2026-06-04T12:53:14.7438846Z - Required stages: impl, unit
2026-06-04T12:53:14.7438865Z 
2026-06-04T12:53:14.7439319Z ### REQ-REACH-2
2026-06-04T12:53:14.7440082Z - Title: Remote command execution (deferred, consent-gated)
2026-06-04T12:53:14.7440547Z - Required stages: 
2026-06-04T12:53:14.7440578Z 
2026-06-04T12:53:14.7440996Z ### REQ-MSG-1
2026-06-04T12:53:14.7443557Z - Title: Local message delivery: TCP-first to a registered address, spool fallback when offline; id->address via registry (stale-clean first); reply routing (__REPLY_TO__)
2026-06-04T12:53:14.7444062Z - Required stages: impl, unit, int
2026-06-04T12:53:14.7444094Z 
2026-06-04T12:53:14.7444511Z ### REQ-MSG-2
2026-06-04T12:53:14.7445921Z - Title: spt binary CLI surface: send/ring/ready/poll/list/stop/whoami, stable arg shapes + exit codes
2026-06-04T12:53:14.7446408Z - Required stages: impl, unit
2026-06-04T12:53:14.7446427Z 
2026-06-04T12:53:14.7447101Z ### REQ-MSG-3
2026-06-04T12:53:14.7449224Z - Title: Ready-agent lifecycle: register perch (info.json + listener + registry address) on ready, drain spooled backlog on startup, clean teardown
2026-06-04T12:53:14.7450074Z - Required stages: impl, unit, int
2026-06-04T12:53:14.7450098Z 
2026-06-04T12:53:14.7450557Z ### REQ-NODE-IDENTITY
2026-06-04T12:53:14.7451701Z - Title: Ed25519 identity primitive: keypair, detached sign/verify, stable pubkey<->hex
2026-06-04T12:53:14.7452341Z - Required stages: impl, unit
2026-06-04T12:53:14.7452370Z 
2026-06-04T12:53:14.7452789Z ### REQ-NET-1
2026-06-04T12:53:14.7453702Z - Title: WAN messaging first-class, behind default-on net feature flag
2026-06-04T12:53:14.7454197Z - Required stages: impl, unit
2026-06-04T12:53:14.7454217Z 
2026-06-04T12:53:14.7454635Z ### REQ-NET-2
2026-06-04T12:53:14.7455506Z - Title: n0 relay default + self-host knob + plain-language disclosure
2026-06-04T12:53:14.7455972Z - Required stages: impl
2026-06-04T12:53:14.7455991Z 
2026-06-04T12:53:14.7456435Z ### REQ-NET-3
2026-06-04T12:53:14.7457240Z - Title: Cross-node Psyche sync over P2P replaces gh-repo-sync
2026-06-04T12:53:14.7457840Z - Required stages: impl, unit
2026-06-04T12:53:14.7457863Z 
2026-06-04T12:53:14.7458311Z ### REQ-PAIR-1
2026-06-04T12:53:14.7458810Z - Title: TOTP-seeded SPAKE2 pairing
2026-06-04T12:53:14.7459334Z - Required stages: impl, unit
2026-06-04T12:53:14.7459536Z 
2026-06-04T12:53:14.7460132Z ### REQ-PAIR-2
2026-06-04T12:53:14.7460777Z - Title: Local trust store with TOFU + warn-on-change
2026-06-04T12:53:14.7461274Z - Required stages: impl, unit
2026-06-04T12:53:14.7461294Z 
2026-06-04T12:53:14.7461720Z ### REQ-PAIR-3
2026-06-04T12:53:14.7462436Z - Title: Fetch current pairing code from any paired node
2026-06-04T12:53:14.7462931Z - Required stages: impl, unit
2026-06-04T12:53:14.7462951Z 
2026-06-04T12:53:14.7463380Z ### REQ-PAIR-4
2026-06-04T12:53:14.7463901Z - Title: Subnet naming on first pairing
2026-06-04T12:53:14.7464391Z - Required stages: impl, unit
2026-06-04T12:53:14.7464424Z 
2026-06-04T12:53:14.7464867Z ### REQ-PAIR-5
2026-06-04T12:53:14.7466500Z - Title: Multi-subnet pairing: subnet-name discovery input, create-new-names-up-front, rendezvous-token hashing
2026-06-04T12:53:14.7466998Z - Required stages: impl, unit
2026-06-04T12:53:14.7467018Z 
2026-06-04T12:53:14.7467459Z ### REQ-PAIR-6
2026-06-04T12:53:14.7468820Z - Title: Elevation-gated per-subnet code fetch (UAC/root or elevated agent; else authenticator app)
2026-06-04T12:53:14.7469371Z - Required stages: impl, unit
2026-06-04T12:53:14.7469550Z 
2026-06-04T12:53:14.7470144Z ### REQ-PAIR-7
2026-06-04T12:53:14.7470946Z - Title: Subnet icon (inline image metadata, GUI-only consumer)
2026-06-04T12:53:14.7471401Z - Required stages: 
2026-06-04T12:53:14.7471418Z 
2026-06-04T12:53:14.7471847Z ### REQ-SEC-1
2026-06-04T12:53:14.7474089Z - Title: Per-endpoint access whitelist: origin-node gate, stateful-firewall (reply/outbound exempt), node-now/user-later, outer gate before grants
2026-06-04T12:53:14.7474570Z - Required stages: impl, unit
2026-06-04T12:53:14.7474613Z 
2026-06-04T12:53:14.7475038Z ### REQ-NOTIF-1
2026-06-04T12:53:14.7477056Z - Title: Notification primitive: per-subnet replicated spool, seen/dismissed, resurface-at-boundary, subsumes update+consent prompts
2026-06-04T12:53:14.7477539Z - Required stages: impl, unit
2026-06-04T12:53:14.7477556Z 
2026-06-04T12:53:14.7477988Z ### REQ-NOTIF-2
2026-06-04T12:53:14.7479629Z - Title: spt notify (agent-issued subnet notif) + notif_command manifest seam (harness + shell adapters)
2026-06-04T12:53:14.7480292Z - Required stages: doc, impl, unit
2026-06-04T12:53:14.7480313Z 
2026-06-04T12:53:14.7480748Z ### REQ-UPD-1
2026-06-04T12:53:14.7481285Z - Title: Peer-propagated update over P2P
2026-06-04T12:53:14.7481776Z - Required stages: impl, unit
2026-06-04T12:53:14.7481796Z 
2026-06-04T12:53:14.7482214Z ### REQ-UPD-2
2026-06-04T12:53:14.7482906Z - Title: All binaries signature-verified before handoff
2026-06-04T12:53:14.7483409Z - Required stages: impl, unit
2026-06-04T12:53:14.7483618Z 
2026-06-04T12:53:14.7484045Z ### REQ-UPD-3
2026-06-04T12:53:14.7484911Z - Title: No endpoint process terminates/suspends during self-update
2026-06-04T12:53:14.7485418Z - Required stages: impl, unit, int
2026-06-04T12:53:14.7485437Z 
2026-06-04T12:53:14.7485871Z ### REQ-UPD-4
2026-06-04T12:53:14.7486786Z - Title: Update gated on user confirmation by default; opt-in full-auto
2026-06-04T12:53:14.7487417Z - Required stages: impl, unit
2026-06-04T12:53:14.7487441Z 
2026-06-04T12:53:14.7487872Z ### REQ-UPD-5
2026-06-04T12:53:14.7488527Z - Title: spt-core ripple-updates registered adapters
2026-06-04T12:53:14.7489023Z - Required stages: impl, unit
2026-06-04T12:53:14.7489043Z 
2026-06-04T12:53:14.7489705Z ### REQ-TERM-1
2026-06-04T12:53:14.7490728Z - Title: Process-supervisor terminal wrapper hosting broker PTYs
2026-06-04T12:53:14.7491218Z - Required stages: impl, unit
2026-06-04T12:53:14.7491241Z 
2026-06-04T12:53:14.7491669Z ### REQ-TERM-2
2026-06-04T12:53:14.7492576Z - Title: session-surface abstraction; send-keys + send-line injection
2026-06-04T12:53:14.7493071Z - Required stages: impl, unit
2026-06-04T12:53:14.7493103Z 
2026-06-04T12:53:14.7493531Z ### REQ-TERM-3
2026-06-04T12:53:14.7494189Z - Title: Byte-stream remote terminal streaming for v1
2026-06-04T12:53:14.7494668Z - Required stages: impl, unit
2026-06-04T12:53:14.7494688Z 
2026-06-04T12:53:14.7495116Z ### REQ-TERM-4
2026-06-04T12:53:14.7497136Z - Title: Live activity buffer (PTY digest): adapter-supplied patterns over broker PTY, spt digest pull + delta-stream, opt-in Path-B log
2026-06-04T12:53:14.7497649Z - Required stages: impl, unit, int
2026-06-04T12:53:14.7497671Z 
2026-06-04T12:53:14.7498104Z ### REQ-FRONT-1
2026-06-04T12:53:14.7498965Z - Title: Day-one launcher/manager frontend (list/launch/attach/init)
2026-06-04T12:53:14.7499642Z - Required stages: 
2026-06-04T12:53:14.7499665Z 
2026-06-04T12:53:14.7500275Z ### REQ-INSTALL-1
2026-06-04T12:53:14.7501249Z - Title: Two install paths; signed one-line script; OS-service registration
2026-06-04T12:53:14.7501717Z - Required stages: 
2026-06-04T12:53:14.7501736Z 
2026-06-04T12:53:14.7502164Z ### REQ-INSTALL-2
2026-06-04T12:53:14.7502832Z - Title: Marketplace-repackaging-friendly install
2026-06-04T12:53:14.7503278Z - Required stages: 
2026-06-04T12:53:14.7503297Z 
2026-06-04T12:53:14.7503737Z ### REQ-INSTALL-3
2026-06-04T12:53:14.7504397Z - Title: Idempotent + interactive-optional first run
2026-06-04T12:53:14.7504856Z - Required stages: 
2026-06-04T12:53:14.7504875Z 
2026-06-04T12:53:14.7505324Z ### REQ-INSTALL-4
2026-06-04T12:53:14.7509067Z - Title: Adapter registration lifecycle: spt adapter add (--github, manifest-first, install-is-first-update) + soft-deregister remove + optional manifest uninstall template; node-local registered-adapter set self-update ripples over
2026-06-04T12:53:14.7509750Z - Required stages: 
2026-06-04T12:53:14.7509769Z 
2026-06-04T12:53:14.7510380Z ### REQ-MIGRATE-1
2026-06-04T12:53:14.7511214Z - Title: Auto-detect and migrate a legacy claude_skill_owl install
2026-06-04T12:53:14.7511682Z - Required stages: 
2026-06-04T12:53:14.7511702Z 
2026-06-04T12:53:14.7512129Z ### REQ-INFRA-1
2026-06-04T12:53:14.7513039Z - Title: GitHub issue tracking for v1; tangled.org as migration target
2026-06-04T12:53:14.7513501Z - Required stages: 
2026-06-04T12:53:14.7513521Z 
2026-06-04T12:53:14.7513943Z ### REQ-DOCS-1
2026-06-04T12:53:14.7514964Z - Title: Dual-audience docs (human + AI dev-agent), markdown once / two depths
2026-06-04T12:53:14.7515430Z - Required stages: 
2026-06-04T12:53:14.7515447Z 
2026-06-04T12:53:14.7515883Z ### REQ-DOCS-2
2026-06-04T12:53:14.7516702Z - Title: Sub-10-minute runnable killer quickstart per audience
2026-06-04T12:53:14.7517148Z - Required stages: 
2026-06-04T12:53:14.7517165Z 
2026-06-04T12:53:14.7517593Z ### REQ-DOCS-3
2026-06-04T12:53:14.7518450Z - Title: Diátaxis structure; one canonical way to do X
2026-06-04T12:53:14.7518916Z - Required stages: 
2026-06-04T12:53:14.7518935Z 
2026-06-04T12:53:14.7519582Z ### REQ-DOCS-4
2026-06-04T12:53:14.7520946Z - Title: Agent-consumable layer (llms.txt, manifest schema, MCP, CLI help)
2026-06-04T12:53:14.7521407Z - Required stages: 
2026-06-04T12:53:14.7521428Z 
2026-06-04T12:53:14.7521857Z ### REQ-DOCS-5
2026-06-04T12:53:14.7522826Z - Title: Anti-drift: rustdoc/schema/exports/CLI-help generated + CI-checked
2026-06-04T12:53:14.7523274Z - Required stages: 
2026-06-04T12:53:14.7523440Z 
2026-06-04T12:53:14.7523985Z ### REQ-HAZARD-GRACE-BEFORE-SIGNOFF
2026-06-04T12:53:14.7524940Z - Title: Grace-period wait completes before composing INIT_SIGNOFF (1.1)
2026-06-04T12:53:14.7525426Z - Required stages: impl, unit
2026-06-04T12:53:14.7525445Z 
2026-06-04T12:53:14.7525974Z ### REQ-HAZARD-INFO-JSON-TORN-READ
2026-06-04T12:53:14.7526709Z - Title: State-file reads tolerate concurrent writes (1.2)
2026-06-04T12:53:14.7527206Z - Required stages: impl, unit
2026-06-04T12:53:14.7527226Z 
2026-06-04T12:53:14.7527728Z ### REQ-HAZARD-STALE-INDEX-LOCK
2026-06-04T12:53:14.7528351Z - Title: Sweep stale lockfiles on daemon boot (1.3)
2026-06-04T12:53:14.7528817Z - Required stages: 
2026-06-04T12:53:14.7528835Z 
2026-06-04T12:53:14.7529373Z ### REQ-HAZARD-DEFERRED-DRAIN
2026-06-04T12:53:14.7530655Z - Title: Deferred spool rows excluded from the event-stream drain (1.4)
2026-06-04T12:53:14.7531155Z - Required stages: impl, unit
2026-06-04T12:53:14.7531176Z 
2026-06-04T12:53:14.7531658Z ### REQ-HAZARD-WORKER-PATH
2026-06-04T12:53:14.7532584Z - Title: Single source of truth for Worker/Psyche perch location (1.5)
2026-06-04T12:53:14.7533070Z - Required stages: impl, unit
2026-06-04T12:53:14.7533088Z 
2026-06-04T12:53:14.7533610Z ### REQ-HAZARD-PARENT-PID-PREFER
2026-06-04T12:53:14.7534576Z - Title: Prefer stable parent PID / broker handle over ephemeral PID (2.1)
2026-06-04T12:53:14.7535024Z - Required stages: 
2026-06-04T12:53:14.7535043Z 
2026-06-04T12:53:14.7535597Z ### REQ-HAZARD-STDIN-SESSION-ID
2026-06-04T12:53:14.7536231Z - Title: Stdin session_id precedence over env (2.2)
2026-06-04T12:53:14.7536685Z - Required stages: 
2026-06-04T12:53:14.7536715Z 
2026-06-04T12:53:14.7537245Z ### REQ-HAZARD-HANDOFF-ARGV-COMPAT
2026-06-04T12:53:14.7538041Z - Title: Broker/brain IPC + handoff argv version-tolerant (2.3)
2026-06-04T12:53:14.7538539Z - Required stages: impl, unit
2026-06-04T12:53:14.7538559Z 
2026-06-04T12:53:14.7539043Z ### REQ-HAZARD-GEN-START-NOW
2026-06-04T12:53:14.7540101Z - Title: gen_start = now() on cold-start and handoff (2.4)
2026-06-04T12:53:14.7540601Z - Required stages: impl, int
2026-06-04T12:53:14.7540634Z 
2026-06-04T12:53:14.7541151Z ### REQ-HAZARD-EPHEMERAL-CLEANUP
2026-06-04T12:53:14.7541965Z - Title: Ephemeral perch cleanup on every ring exit path (3.1)
2026-06-04T12:53:14.7542444Z - Required stages: impl, unit
2026-06-04T12:53:14.7542462Z 
2026-06-04T12:53:14.7543007Z ### REQ-HAZARD-STALE-SIGNOFF-SENTINEL
2026-06-04T12:53:14.7543825Z - Title: Stale signoff sentinel does not kill a fresh start (3.2)
2026-06-04T12:53:14.7544322Z - Required stages: impl, unit
2026-06-04T12:53:14.7544341Z 
2026-06-04T12:53:14.7544874Z ### REQ-HAZARD-ECHO-BEFORE-SIGNOFF
2026-06-04T12:53:14.7545831Z - Title: Echo-commune fires before INIT_SIGNOFF on orphan teardown (3.3)
2026-06-04T12:53:14.7546331Z - Required stages: impl, unit
2026-06-04T12:53:14.7546349Z 
2026-06-04T12:53:14.7546881Z ### REQ-HAZARD-ENVELOPE-DECODE-ORDER
2026-06-04T12:53:14.7547653Z - Title: Envelope decode order, ampersand decoded last (4.1)
2026-06-04T12:53:14.7548160Z - Required stages: impl, unit
2026-06-04T12:53:14.7548181Z 
2026-06-04T12:53:14.7548702Z ### REQ-HAZARD-ENVELOPE-PARSER-SAFE
2026-06-04T12:53:14.7549609Z - Title: Two-slice envelope parser is panic-free and tolerant (4.2)
2026-06-04T12:53:14.7550100Z - Required stages: impl, unit
2026-06-04T12:53:14.7550121Z 
2026-06-04T12:53:14.7550651Z ### REQ-HAZARD-EVENTPART-REASSEMBLY
2026-06-04T12:53:14.7551755Z - Title: EVENT-PART split/reassembly is byte-exact; orphan parts dropped silently
2026-06-04T12:53:14.7552242Z - Required stages: impl, unit
2026-06-04T12:53:14.7552261Z 
2026-06-04T12:53:14.7552733Z ### REQ-HAZARD-ID-CHARSET
2026-06-04T12:53:14.7554214Z - Title: Addressable-id charset reserves :/@ delimiters; validated at every creation seam (4.6)
2026-06-04T12:53:14.7554714Z - Required stages: impl, unit
2026-06-04T12:53:14.7554736Z 
2026-06-04T12:53:14.7555790Z ### REQ-HAZARD-REGISTRY-STALE-CLEAN
2026-06-04T12:53:14.7556884Z - Title: Stale registry entries degrade to fallback, never hard-fail (4.3)
2026-06-04T12:53:14.7557597Z - Required stages: impl, unit
2026-06-04T12:53:14.7557623Z 
2026-06-04T12:53:14.7558237Z ### REQ-HAZARD-REGISTRY-CONCURRENT
2026-06-04T12:53:14.7560000Z - Title: Concurrent SQLite openers (registry/spool) must not fail with 'database is locked' (4.7)
2026-06-04T12:53:14.7560608Z - Required stages: impl, unit
2026-06-04T12:53:14.7560635Z 
2026-06-04T12:53:14.7561272Z ### REQ-HAZARD-REGISTRY-DIR-CREATE
2026-06-04T12:53:14.7563175Z - Title: SQLite store opens create their parent dir themselves — a fresh-home registry op must not SQLITE_CANTOPEN (4.9)
2026-06-04T12:53:14.7563804Z - Required stages: doc, impl, unit
2026-06-04T12:53:14.7563850Z 
2026-06-04T12:53:14.7564501Z ### REQ-HAZARD-REGISTRY-EPOCH-LEASE
2026-06-04T12:53:14.7566833Z - Title: Registry merge ordered by per-node monotonic epoch, never wall-clock — a stale Active can't clobber a newer Offline (4.8, red-team #8)
2026-06-04T12:53:14.7567452Z - Required stages: impl, unit
2026-06-04T12:53:14.7567475Z 
2026-06-04T12:53:14.7568140Z ### REQ-HAZARD-DEFERRED-SURVIVE-DRAIN
2026-06-04T12:53:14.7568802Z - Title: Deferred rows survive poll drain (4.4)
2026-06-04T12:53:14.7569409Z - Required stages: impl, unit
2026-06-04T12:53:14.7569618Z 
2026-06-04T12:53:14.7570398Z ### REQ-HAZARD-INBOX-NO-DOUBLE
2026-06-04T12:53:14.7571154Z - Title: No double-delivery via legacy inbox (4.5)
2026-06-04T12:53:14.7571699Z - Required stages: impl, unit
2026-06-04T12:53:14.7571783Z 
2026-06-04T12:53:14.7572357Z ### REQ-HAZARD-WINDOWS-PID-RECYCLE
2026-06-04T12:53:14.7573208Z - Title: Windows PID-recycling false positives guarded (5.1)
2026-06-04T12:53:14.7573800Z - Required stages: impl, unit
2026-06-04T12:53:14.7573855Z 
2026-06-04T12:53:14.7574452Z ### REQ-HAZARD-EBUSY-RENAME
2026-06-04T12:53:14.7575327Z - Title: tmp-write + atomic-rename + retry on Windows EBUSY (5.2)
2026-06-04T12:53:14.7576035Z - Required stages: impl, unit
2026-06-04T12:53:14.7576057Z 
2026-06-04T12:53:14.7576647Z ### REQ-HAZARD-SUBPROCESS-TIMEOUT
2026-06-04T12:53:14.7577471Z - Title: Every harness/git subprocess has a timeout (5.3)
2026-06-04T12:53:14.7578067Z - Required stages: impl, unit
2026-06-04T12:53:14.7578086Z 
2026-06-04T12:53:14.7578677Z ### REQ-HAZARD-UNC-PATH-STRIP
2026-06-04T12:53:14.7579688Z - Title: Strip Windows UNC prefix on serialized paths (5.4)
2026-06-04T12:53:14.7580404Z - Required stages: impl, unit
2026-06-04T12:53:14.7580425Z 
2026-06-04T12:53:14.7581040Z ### REQ-HAZARD-SINGLE-PATH-SOURCE
2026-06-04T12:53:14.7582084Z - Title: Single path/registry source of truth; no layout ambiguity (6.1)
2026-06-04T12:53:14.7582673Z - Required stages: impl, unit
2026-06-04T12:53:14.7582707Z 
2026-06-04T12:53:14.7583221Z ### REQ-HAZARD-SOFT-CLEANUP
2026-06-04T12:53:14.7584253Z - Title: Soft-cleanup preserves state, removes only the ready marker (6.2)
2026-06-04T12:53:14.7584828Z - Required stages: impl, unit
2026-06-04T12:53:14.7584851Z 
2026-06-04T12:53:14.7585479Z ### REQ-HAZARD-CASCADE-WIPE-GUARD
2026-06-04T12:53:14.7593661Z - Title: No hard-delete of a parent hosting non-empty children (6.3)
2026-06-04T12:53:14.7594419Z - Required stages: impl, unit
2026-06-04T12:53:14.7594446Z 
2026-06-04T12:53:14.7595017Z ### REQ-HAZARD-DROP-FILE-SINGLE-WRITER
2026-06-04T12:53:14.7595738Z - Title: Drop files are daemon-owned single-writer (6.4)
2026-06-04T12:53:14.7596220Z - Required stages: impl, unit
2026-06-04T12:53:14.7596240Z 
2026-06-04T12:53:14.7596800Z ### REQ-HAZARD-DIRECT-WRITE-PRECEDENCE
2026-06-04T12:53:14.7597901Z - Title: Direct-write precedence marker (with node id) guards stale overwrite (6.5)
2026-06-04T12:53:14.7598387Z - Required stages: impl, unit
2026-06-04T12:53:14.7598407Z 
2026-06-04T12:53:14.7599567Z ### REQ-HAZARD-CONFLICT-BOTH-PRESERVED
2026-06-04T12:53:14.7603017Z - Title: A surfaced concurrent context pair is durably preserved (both versions, tracked artifacts) until a strictly dominating write clears it; no reconcile failure path discards an unmerged version (6.6, ADR-0013)
2026-06-04T12:53:14.7603517Z - Required stages: impl, unit
2026-06-04T12:53:14.7603689Z 
2026-06-04T12:53:14.7604168Z ### REQ-HAZARD-CONPTY-DSR
2026-06-04T12:53:14.7605270Z - Title: ConPTY reader must auto-answer DSR (ESC[6n) or all child output stalls (5.5)
2026-06-04T12:53:14.7605767Z - Required stages: impl, unit
2026-06-04T12:53:14.7605787Z 
2026-06-04T12:53:14.7606274Z ### REQ-HAZARD-LOCAL-API-AUTH
2026-06-04T12:53:14.7607362Z - Title: Every local `api` mutation authenticated to an endpoint/session (codex #13)
2026-06-04T12:53:14.7607844Z - Required stages: impl, unit
2026-06-04T12:53:14.7607874Z 
2026-06-04T12:53:14.7608389Z ### REQ-HAZARD-RESTART-IDEMPOTENT
2026-06-04T12:53:14.7610176Z - Title: Idempotent/exactly-once delivery across brain restart at every broker boundary (codex #14)
2026-06-04T12:53:14.7610691Z - Required stages: impl, unit, int
2026-06-04T12:53:14.7610713Z 
2026-06-04T12:53:14.7611217Z ### REQ-HAZARD-UPDATE-ROLLBACK
2026-06-04T12:53:14.7612586Z - Title: Self-update rejects version rollback; metadata expiry + adapter content signing (codex #5)
2026-06-04T12:53:14.7613089Z - Required stages: impl, unit
2026-06-04T12:53:14.7613110Z 
2026-06-04T12:53:14.7613653Z ### REQ-HAZARD-DAEMON-HOSTED-LIVENESS
2026-06-04T12:53:14.7616052Z - Title: Daemon-hosted perches (Psyche, spt-hosted Self) derive liveness from the daemon endpoint table + info.json status, never is_process_alive(info.pid) (2.5)
2026-06-04T12:53:14.7616564Z - Required stages: impl, unit, int
2026-06-04T12:53:14.7616583Z 
2026-06-04T12:53:14.7617122Z ### REQ-HAZARD-PSYCHE-OUTBOUND-PROXY
2026-06-04T12:53:14.7621825Z - Title: Psyche outbound captured + sanitized: the live-Psyche turn driver captures stdout (never Stdio::null), and the daemon strips/re-stamps Psyche-supplied from=/target and constrains routing (reply→__REPLY_TO__ sender, notify→own user/subnet) (7.3)
2026-06-04T12:53:14.7622358Z - Required stages: impl, unit
2026-06-04T12:53:14.7622379Z 
2026-06-04T12:53:14.7622917Z ### REQ-HAZARD-DAEMON-SCHED-NONBLOCKING
2026-06-04T12:53:14.7626796Z - Title: Per-agent pulse/psyche/echo-commune scheduling must not serialize across agents: each agent's bounded LLM call (echo-commune summarizer, Psyche turn) runs off the shared scheduler so one slow/hung call cannot stall another agent's tick (7.4)
2026-06-04T12:53:14.7627282Z - Required stages: 
2026-06-04T12:53:14.7627304Z 
2026-06-04T12:53:14.7627821Z ### REQ-HAZARD-PAIR-TRANSCRIPT-BIND
2026-06-04T12:53:14.7631684Z - Title: Pairing transcript binds roles, both node pubkeys, subnet ID, seed epoch, TOTP time-step, and confirmation MACs — or unknown-key-share/reflection/wrong-subnet/replay pairing remain possible (ADR-0005 #12)
2026-06-04T12:53:14.7632195Z - Required stages: impl, unit
2026-06-04T12:53:14.7632252Z 
2026-06-04T12:53:14.7632763Z ### REQ-HAZARD-PAIR-SEED-ROTATION
2026-06-04T12:53:14.7635866Z - Title: Removing a node rotates the subnet seed (epoch bump) so an old node/old seed cannot rejoin; trust-store delete alone is NOT revocation because the seed is replicated to every trusted node (ADR-0005 #10)
2026-06-04T12:53:14.7636344Z - Required stages: impl, unit
2026-06-04T12:53:14.7636384Z 
2026-06-04T12:53:14.7636892Z ### REQ-HAZARD-PAIR-RATE-LIMIT
2026-06-04T12:53:14.7641680Z - Title: Subnet-global pairing rate limit: one active ceremony per subnet, shared attempt counter, exponential backoff — a public pre-trust relay + multiple seed-holders otherwise enables distributed SPAKE2 guessing (and ±1 TOTP window triples the valid-password space) (ADR-0005 #11)
2026-06-04T12:53:14.7642186Z - Required stages: impl, unit
2026-06-04T12:53:14.7642208Z 
2026-06-04T12:53:14.7642743Z ### REQ-HAZARD-WAN-ORIGIN-AUTH
2026-06-04T12:53:14.7647070Z - Title: WAN-inbound origin is transport truth, never payload: the access gate's subject (ADR-0009 origin-node whitelist) is the QUIC handshake-proven remote node id from the broker's conn/stream table — a forged origin/node field inside record bytes is inert (7.5)
2026-06-04T12:53:14.7647794Z - Required stages: doc, impl, unit
2026-06-04T12:53:14.7647815Z 
2026-06-04T12:53:14.7648281Z ## How to report back
2026-06-04T12:53:14.7648444Z 
2026-06-04T12:53:14.7649346Z For every (requirement, failing criterion) pair, emit one finding:
2026-06-04T12:53:14.7649373Z 
2026-06-04T12:53:14.7649801Z     {
2026-06-04T12:53:14.7650313Z       "code": "requirement_quality",
2026-06-04T12:53:14.7650808Z       "requirementId": "REQ-...",
2026-06-04T12:53:14.7651673Z       "criterion": "singular" | "verifiable" | "atomic" | "active-voice",
2026-06-04T12:53:14.7652167Z       "message": "<short reason>",
2026-06-04T12:53:14.7652760Z       "suggestedRevision": "<optional rewrite>"
2026-06-04T12:53:14.7653191Z     }
2026-06-04T12:53:14.7653210Z 
2026-06-04T12:53:14.7654161Z Wrap your response as { "findings": [ ... ] } listing only your concerns; the
2026-06-04T12:53:14.7654918Z deterministic findings above don't need to be repeated.
